package com.fdb.efp.nls.service.facade;

import com.fdb.efp.nls.service.vo.RiskClassfyCfgVO;
import com.fdb.efp.nls.service.vo.RiskClassfyListVO;

import java.util.List;

/**
 * <p>Description:风险分类配置表				<p>
 * @author fuzm
 * @date 2018-05-08
 */
public interface RiskClassfyCfgService {
	
	public List<RiskClassfyCfgVO> queryAllOwner(RiskClassfyCfgVO riskClassfyCfgVo);
	
	public List<RiskClassfyCfgVO> queryAllCurrOrg(RiskClassfyCfgVO riskClassfyCfgVo);
	
	public List<RiskClassfyCfgVO> queryAllCurrDownOrg(RiskClassfyCfgVO riskClassfyCfgVo);
	
	public int insertRiskClassfyCfg(RiskClassfyCfgVO inRiskClassfyCfgVo);
	/**
	 * 
	 * @param riskClassfyCfgVo
	 * @return -2: 只能删除待生效状态
	 */
	public int deleteByPk(RiskClassfyCfgVO riskClassfyCfgVo);
	/**
	 * 只更新不是生效状态的信息
	 * @param riskClassfyCfgVo
	 * @return
	 */
	public int updateByPk(RiskClassfyCfgVO riskClassfyCfgVo);
	/**
	 * 更新提交风险分类状态，并且生效
	 * @param riskClassfyCfgVo
	 * @return -3: 风险分类配置下不存在风险分类配置清单信息,不能生效!
	 */
	public int updateSubmitByPk(RiskClassfyCfgVO inRiskClassfyCfgVo);
	/**
	 * 将风险分类配置改为失效状态
	 * @param inRiskClassfyCfgVo
	 * @return
	 */
	public int updateDisabledByPk(RiskClassfyCfgVO inRiskClassfyCfgVo);
	
	public RiskClassfyCfgVO queryByPk(RiskClassfyCfgVO riskClassfyCfgVo);
	/**
	 * 插入配置信息，并且返回新增成功的信息 
	 * @param inRiskClassfyCfgVo
	 * @return
	 */
	public RiskClassfyCfgVO insertRiskInfoBack(RiskClassfyCfgVO inRiskClassfyCfgVo);
	/**
	 * 查询风险分类配置下的 所有 配置清单, 分页
	 * @param riskClassfyListVO
	 * @return
	 */
	public List<RiskClassfyListVO> queryListAll(RiskClassfyListVO riskClassfyListVo);
	/**
	 * 插入风险分类配置清单
	 * @param inRiskClassfyListVo
	 * @return -2: 存在同一逾期最小天数、逾期最大天数、担保方式、是否涉农、客户评级各维度相组合的一条配置信息
	 */
	public int insertRiskClassfyList(RiskClassfyListVO inRiskClassfyListVo);
	/**
	 * 更新 风险分类配置清单
	 * @param riskClassfyListVo
	 * @return
	 */
	public int updateRiskClassfyListByPk(RiskClassfyListVO inRiskClassfyListVo);
	/**
	 * 更新 风险分类配置清单
	 * @param riskClassfyListVo
	 * @return
	 */
	public int deleteRiskClassfyListByPk(RiskClassfyListVO inRiskClassfyListVo);
	/**
	 * 查询风险分类配置下的 所有 配置清单, 不分页
	 * @param inRiskClassfyListVo
	 * @return
	 */
	public List<RiskClassfyListVO> queryListAllByCfgNo(RiskClassfyListVO inRiskClassfyListVo);
	/**
	 * 根据不同的条件查询风险分类配置清单
	 * @param overdueDay 逾期天数
	 * @param guarWay 担保方式
	 * @param wheAgr 是否涉农
	 * @param custLevel 客户评级
	 * @return
	 */
	public RiskClassfyListVO queryListsByCondition(Integer overdueDay, String guarWay,
                                                   String wheAgr, String custLevel);
	
	/**
	 * 根据不同的条件查询风险分类配置清单
	 * @param overdueDay 逾期天数
	 * @param guarWay 担保方式
	 * @param wheAgr 是否涉农
	 * @param custLevel 客户评级
	 * @return
	 */
	public List<RiskClassfyListVO> queryRiskClassfyListByCondition(Integer overdueDay, String guarWay, String wheAgr, String custLevel);
}
